package com.yulinlin.jdbc.serialize.impl;


import com.yulinlin.lang.util.GenericUtil;

import java.lang.reflect.Field;

/**
 * 字段格式化处理器
 * sql格式化模板语句使用
 */
public interface ITypeSerialize<K,V>  {

    /**
     * 序列化
     * @param o
     * @return
     */
    V serialize(K o);

    /**
     * 反序列化
     * @param o
     * @return
     */
    K unSerialize(V o,Field field);


    //是否支持继承
   default   boolean supportExtend(){
       return  false;
   }


    default Class getTypeClass(){
        return GenericUtil.getGeneric(this.getClass(),ITypeSerialize.class,0) ;
    }
}
